# -*- coding: utf-8 -*-
import scrapy
from movie.items import MovieItem
class MeijuSpider(scrapy.Spider):
    name = 'meiju'  # 爬虫名，一个项目下可能有多个爬虫，并且每个爬虫有优先级、并发等设置，scrapy crawl[spider_name]
    allowed_domains = ['meijutt.com']  # 为了防止一些大型的爬虫项目启动网站，设置限制，每一次请求前都会检查请求的网址是否属于这个域名下，是的话才允许请求。注意：爬取日志爬取网址后响应总为None，检查allowed_domain书写是否正确。，值一般是一级域名。
    start_urls = ['http://www.meijutt.com/new100.html']   # 第一个请求的URL，整个程序的逻辑入口，得到的response返回给self.parse（self，response = response）

    def parse(self, response):
        # print(response.status_code,response.content,response.text)
        # 非框架写法 dom= lxml.HTML(response.text);dom.xpath('')
        # selector框架下正规写法：Selector(response.text).xpath('').extract()

        # 获取剧集名

        movie_list = response.xpath('//ul[@class="top-list  fn-clear"]/li')# /h5/text()
        # [<li>对象，<li>对象]
        for movie in movie_list:

            # movie.xpath('./h5/text()').extract_fist()
            # xpath()返回[Selector(),Selector()] 功能强，可以在Selector对象上进行第二次Xpath解析
            #  xpath().extract()返回['剧集名1，剧集名2'xpath()]
            # xpath().extract_first()返回’剧集名1‘
            #  .表示在子标签基础上继续解析
            name = movie.xpath('./h5/a/text()').extract_first()
            # print(movie.name)
            # 建立debug而不是print，不然因为并发会重复打印多次信息
            # item.name = MovieItem()
            item = MovieItem()
            # item.name = name
            item['name'] = name

            yield item # 相当于同步脚本方法中的return


